% ch7.tex
% Dieses Werk ist unter einem Creative Commons Namensnennung-Keine kommerzielle Nutzung-Weitergabe
% unter gleichen Bedingungen 3.0 Deutschland Lizenzvertrag lizenziert. Um die Lizenz anzusehen, gehen Sie bitte
% zu http://creativecommons.org/licenses/by-nc-sa/3.0/de/ oder schicken Sie einen Brief an
% Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA.


%\chapter{A short chapter about Files}\label{ch:ashortchapteraboutfiles}\index{functions!file}
\chapter{Ein kurzes Kapitel über Dateien}\label{ch:ashortchapteraboutfiles}\index{Funktionen!Datei}

%You probably know what a file is already.
Wahrscheinlich weißt du schon, was eine Datei ist.
\par
\noindent
%If your parents have a home office, chances are they've got a file cabinet of some sort.  Various important papers (mostly boring adult stuff) are stored in those cabinets, usually in cardboard folders labelled with letters of the alphabet, or months of the year. Files on a computer are rather similar to those cardboard folders. They have labels (the name of the file), and are used to store important information. The drawers on a file cabinet, which might be used to organise paperwork so they are easier to find, are similar to directories (or folders) on a computer.
Wenn deine Eltern ein Büro zu Hause haben, ist sicher irgendwo auch ein Aktenschrank zu finden. Da sind verschiedene wichtige Zettel drin (meist ziemlich langweilige). Die Zettel sind sicher in verschiedenen Mappen einsortiert und die Mappen (Aktenordner) sind vermutlich mit Buchstaben oder Zahlen beschriftet und nach dem Alphabet sortiert. Dateien auf dem Computer sind diesen Aktenordnern recht ähnlich. Die Dateien sind auch beschriftet (entspricht dem Namen der Datei), und sie speichern wichtige Informationen. Die Aktenordner um die Zettel zu sortieren, entsprechen den Verzeichnissen (oder auch Ordner genannt) im Computer.
\par
%We've already created a file object, using Python, in the previous chapter.  The example looked like this:
Im vorigen Kapitel haben wir schon eine Datei mit Python erstellt. Das Beispiel hat so ausgesehen:

\begin{WINDOWS}

%\begin{listing}
%\begin{verbatim}
%>>> f = open('c:\\test.txt')
%>>> print(f.read())
%\end{verbatim}
%\end{listing}
\begin{Verbatim}[frame=single]
>>> f = open('c:\\test.txt')
>>> print(f.read())
\end{Verbatim}

\end{WINDOWS}

\begin{MAC}

%\begin{listing}
%\begin{verbatim}
%>>> f = open('Desktop/test.txt')
%>>> print(f.read())
%\end{verbatim}
%\end{listing}
\begin{Verbatim}[frame=single]
>>> f = open('Desktop/test.txt')
>>> print(f.read())
\end{Verbatim}

\begin{Verbatim}[frame=single, label=eventueller Fehler]
Falls du einen Fehler wie
[Errno 2] No such file or directory: 'Desktop/test.txt' bekommst,
dann öffne die Python Konsole wieder aus dem Home Verzeichnis
heraus, oder gib den absoluten Pfad zur Datei an wie
beispielsweise /Users/benutzer/Desktop/text.txt
\end{Verbatim}

\end{MAC}

\begin{LINUX}

%\begin{listing}
%\begin{verbatim}
%>>> f = open('Desktop/test.txt')
%>>> print(f.read())
%\end{verbatim}
%\end{listing}
\begin{Verbatim}[frame=single]
>>> f = open('Desktop/test.txt')
>>> print(f.read())
\end{Verbatim}

\begin{Verbatim}[frame=single, label=eventueller Fehler]
Falls du einen Fehler wie
[Errno 2] No such file or directory: 'Desktop/test.txt' bekommst,
dann öffne die Python Konsole wieder aus dem Home Verzeichnis
heraus, oder gib den absoluten Pfad zur Datei an
wie beispielsweise /home/benutzer/Desktop/text.txt
\end{Verbatim}

\end{LINUX}

%A file object doesn't just have the function \code{read}\index{functions!file!read}. After all, file cabinets wouldn't be very useful if you could only open a drawer and take papers out, but could never put them back in. We can create a new, empty file, by passing another parameter when we call the \code{file} function:
Mit dem Datei-Objekt in Python kannst du mehr machen als nur \code{lesen}\index{Funktionen!Datei!lesen}. Aktenschränke wären auch nicht besonders sinnvoll, wenn du nur Dinge rausnehmen, aber nicht mehr zurückbringen kannst. Wir können eine neue leere Datei erstellen, indem wir andere Parameter der Python Datei Funktion mitgeben.

%\begin{listing}
%\begin{verbatim}
%>>> f = open('myfile.txt', 'w')
%\end{verbatim}
%\end{listing}
\begin{Verbatim}[frame=single]
>>> f = open('meine_datei.txt', 'w')
\end{Verbatim}

%'w' is the way we tell Python we want to write to the file object, and not read from it.  We can now add information to the file using the function \code{write}\index{functions!file!write}.
Mit dem Parameter \textbf{w} (kommt vom englischen write) sagen wir Python, dass wir in die Datei auch schreiben wollen. Mit der Funktion \code{write}\index{Funktionen!Datei!schreiben} können wir nun Information in die Datei schreiben.

%\begin{listing}
%\begin{verbatim}
%>>> f = open('myfile.txt', 'w')
%>>> f.write('this is a test file')
%\end{verbatim}
%\end{listing}
\begin{Verbatim}[frame=single]
>>> f = open('meine_datei.txt', 'w')
>>> f.write('das hier ist ein Test')
\end{Verbatim}

%Then we need to tell Python when we're finished with the file, and don't want to write to it any more---we use the function \code{close}\index{functions!file!close} to do this.
Wenn wir fertig mit schreiben sind, müssen wir es Python sagen, und Python macht dann die Datei zu---wir verwenden dazu die Funktion \code{close}\index{Funktionen!Datei!schließen}.

%\begin{listing}
%\begin{verbatim}
%>>> f = open('myfile.txt', 'w')
%>>> f.write('this is a test file')
%>>> f.close()
%\end{verbatim}
%\end{listing}
\begin{Verbatim}[frame=single, label= alle Befehle zusammengefasst]
>>> f = open('meine_datei.txt', 'w')
>>> f.write('das hier ist ein Test')
>>> f.close()
\end{Verbatim}

%If you open the file using your favourite editor, you will see it contains the text: ``this is a test file''.  Or better yet, we can use Python to read it in again:
Wenn du nun die Datei mit dem Editor deiner Wahl öffnest, wirst du den Text: ``das hier ist ein Test'' sehen. Oder wir verwenden wieder Python um es wieder einzulesen.

%\begin{listing}
%\begin{verbatim}
%>>> f = open('myfile.txt')
%>>> print(f.read())
%this is a test file
%\end{verbatim}
%\end{listing}
\begin{Verbatim}[frame=single]
>>> f = open('meine_datei.txt')
>>> print(f.read())
das hier ist ein Test

\end{Verbatim}

\newpage
